package com.study.spark.scala.chapter07

import scala.collection.mutable.ArrayBuffer

object Scala03_Collection_3{
  def main(args: Array[String]): Unit = {
    // TODO 集合 - 常用方法
    // 计算集合和集合之外的数据聚合
    val array = ArrayBuffer(1,2,3,4)
    val num = 5
    // fold折叠，将两个数据集聚合 默认也是foldLeft
    // scan扫描，将中间结果也显示出来
    // ((((5-1)-2)-3)-4)
    println(array.fold(num)(_ - _))//-5
    println(array.scan(num)(_ - _))//ArrayBuffer(5, 4, 2, -1, -5)

    // (1-(2-(3-(4-5))))
    println(array.foldRight(num)(_-_))//3
    println(array.scanRight(num)(_-_))//ArrayBuffer(3, -2, 4, -1, 5)

  }
}
